<!-- HTML header for doxygen 1.8.13-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.13"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>MTB CAT1 Peripheral driver library: SysTick      (Arm&reg; System Timer)</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen_style.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><a href="http://www.cypress.com/"><img alt="Logo" src="IFXCYP_one-line.png"/></a></td>
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">MTB CAT1 Peripheral driver library</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('group__group__arm__system__timer.html','');});
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="#groups">API Reference</a>  </div>
  <div class="headertitle">
<div class="title">SysTick (Arm&reg; System Timer)</div>  </div>
</div><!--header-->
<div class="contents">
<a name="details" id="details"></a><h2 class="groupheader">General Description</h2>
<p>Provides vendor-specific SysTick API. </p>
<p>The functions and other declarations used in this driver are in cy_systick.h. You can include cy_pdl.h to get access to all functions and declarations in the PDL.</p>
<p>The SysTick timer is part of the CPU. The timer is a down counter with a 24-bit reload/tick value that is clocked by the FastClk/SlowClk. The timer has the capability to generate an interrupt when the set number of ticks expires and the counter is reloaded. This interrupt is available as part of the Nested Vectored Interrupt Controller (NVIC) for service by the CPU and can be used for general-purpose timing control in user code.</p>
<p>The timer is independent of the CPU (except for the clock), which is useful in applications requiring precise timing that do not have a dedicated timer/counter available for the job.</p>
<h1><a class="anchor" id="group_systick_configuration"></a>
Configuration Considerations</h1>
<p>The <a class="el" href="group__group__systick__functions.html#gac600820b0201e4ad5a171e97f7642c62">Cy_SysTick_Init()</a> performs all required driver's initialization and enables the timer. The function accepts two parameters: clock source <a class="el" href="group__group__systick__data__structures.html#ga466b1e8fe4278011eab77a691ce2b8f9">cy_en_systick_clock_source_t</a> and the timer interval. You must ensure the selected clock source for SysTick is enabled. The callbacks can be registered/unregistered any time after <a class="el" href="group__group__systick__functions.html#gac600820b0201e4ad5a171e97f7642c62">Cy_SysTick_Init()</a> by calling <a class="el" href="group__group__systick__functions.html#gac20a2349069c5268c6e3f05c6777b9c9">Cy_SysTick_SetCallback()</a>.</p>
<p>Changing the SysTick clock source and/or its frequency will change the interrupt interval and therefore <a class="el" href="group__group__systick__functions.html#ga1825a0f6b0f66b0219f4940003e35ca7">Cy_SysTick_SetReload()</a> should be called to compensate for this change.</p>
<h1><a class="anchor" id="group_systick_more_information"></a>
More Information</h1>
<p>Refer to the SysTick section of the ARM reference guide for complete details on the registers and their use. See also the "CPU Subsystem (CPUSS)" chapter of the device technical reference manual (TRM).</p>
<h1><a class="anchor" id="group_systick_changelog"></a>
Changelog</h1>
<table class="doxtable">
<tr>
<th>Version</th><th>Changes</th><th>Reason for Change </th></tr>
<tr>
<td>1.80 </td><td>Newly added macro CY_SYSTICK_IS_CLK_SRC_VALID and updated APIs <a class="el" href="group__group__systick__functions.html#gac600820b0201e4ad5a171e97f7642c62">Cy_SysTick_Init</a>, <a class="el" href="group__group__systick__functions.html#gaa8a72d8a278e4a3a970b4c4a021f3647">Cy_SysTick_SetClockSource</a>.<br />
 </td><td>Added check for IMO clock source.  </td></tr>
<tr>
<td>1.70.1 </td><td>Updated driver guards.<br />
 </td><td>Bug fixes.  </td></tr>
<tr>
<td>1.70 </td><td>Macro value change and enhancements.<br />
 </td><td>Bug fix and Enhancements.  </td></tr>
<tr>
<td>1.60 </td><td>Bug fix and Enhancements.<br />
 </td><td>Bug fix and Enhancements.  </td></tr>
<tr>
<td>1.50 </td><td>CAT1C, CAT1D devices support.<br />
 Updated <a class="el" href="group__group__systick__functions.html#gac600820b0201e4ad5a171e97f7642c62" title="Initializes the SysTick driver: ">Cy_SysTick_Init()</a> to use <a class="el" href="group__group__sysint__functions.html#ga6628d90db5d0e0e8801535e2f1519266" title="Changes the ISR vector for the interrupt. ">Cy_SysInt_SetVector()</a> API to register the callback function and removed invalid define CY_SYSTICK_IRQ_NUM. </td><td>Support for new devices.  </td></tr>
<tr>
<td>1.40 </td><td>Support for CM33. </td><td>New devices support.  </td></tr>
<tr>
<td rowspan="2">1.30 </td><td>Added function parameter checks. </td><td>Improved the debugging capability.  </td></tr>
<tr>
<td>Minor documentation updates. </td><td>Documentation enhancement.  </td></tr>
<tr>
<td rowspan="2">1.20 </td><td>Updated <a class="el" href="group__group__systick__functions.html#gaa8a72d8a278e4a3a970b4c4a021f3647" title="Sets the clock source for the SysTick counter. ">Cy_SysTick_SetClockSource()</a> for the PSoC 64 devices, so that passing any other value than CY_SYSTICK_CLOCK_SOURCE_CLK_CPU will not affect clock source and it will be as <a class="el" href="group__group__systick__functions.html#ga6d72adec7b58994ff9097bb4a301fa95">Cy_SysTick_GetClockSource()</a> reports. </td><td>Added PSoC 64 devices support.  </td></tr>
<tr>
<td>Minor documentation updates. </td><td>Documentation enhancement.  </td></tr>
<tr>
<td>1.10.1 </td><td>Updated include files. </td><td>Improve pdl usability.  </td></tr>
<tr>
<td rowspan="2">1.10 </td><td>Flattened the organization of the driver source code into the single source directory and the single include directory.  </td><td>Driver library directory-structure simplification.  </td></tr>
<tr>
<td>Added register access layer. Use register access macros instead of direct register access using dereferenced pointers. </td><td>Makes register access device-independent, so that the PDL does not need to be recompiled for each supported part number.  </td></tr>
<tr>
<td>1.0.1 </td><td>Fixed a warning issued when the compilation of C++ source code was enabled. </td><td></td></tr>
<tr>
<td>1.0 </td><td>Initial version </td><td></td></tr>
</table>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="groups"></a>
API Reference</h2></td></tr>
<tr class="memitem:group__group__systick__macros"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__systick__macros.html">Macros</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:group__group__systick__functions"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__systick__functions.html">Functions</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:group__group__systick__data__structures"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__systick__data__structures.html">Data Structures</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part
<div id="nav-path" class="navpath">
    <ul>
        <li class="footer">
            Generated for <b>MTB CAT1 Peripheral driver library</b> by <b>Cypress Semiconductor Corporation</b>.
            All rights reserved.
        </li>
    </ul>
</div>
-->
</body>
</html>
